# * coding: utf-8 *
from .baseline_default import DefaultSuiteBaseline


class SuiteType:
    CommonSuite = "CommonSuite"


# Meta suite, without sub_suite

OpenGLSuite = {
    "type": SuiteType.CommonSuite,
    "name": "OpenGLSuite",
    "description": "OpenGL render",
    "workloads": [
        "gl_depth",
        "gl_fire",
        "gl_fog",
        "gl_material",
        "gl_msaa",
        "gl_sprite",
        "gl_skybox",
        "gl_terrain",
        "gl_textures",
        "gl_pixel",
        "gl_fill",
        "gl_shader",
        "gl_mesh",
        "gl_shadowmap",
        "gl_feedback",
        "gl_instance",
        "gl_computeshader",
        "gl_lights",
        "gl_waterwave",
    ],
    "subsuites": None,
}

VulkanSuite = {
    "type": SuiteType.CommonSuite,
    "name": "VulkanSuite",
    "description": "Vulkan render",
    "workloads": [
        "vk_instance",
        "vk_mesh",
        "vk_geom",
        "vk_tess",
        "vk_model",
        "vk_buffer",
        "vk_cube",
        "vk_uniform",
        "vk_cartoon",
    ],
    "subsuites": None,
}

OpenCLSuite = {
    "type": SuiteType.CommonSuite,
    "name": "OpenCLSuite",
    "description": "OpenCL compute",
    "workloads": [
        "bs-download-speed",
        "bs-readback-speed",
        "gmem-rw",
        "maxhalf-compute",
        "maxint-compute",
        "maxsp-compute",
        "maxdp-compute",
        "fft-test",
        "gemm-test",
    ],
    "subsuites": None,
}

CUDASuite = {
    "type": SuiteType.CommonSuite,
    "name": "CUDASuite",
    "description": "CUDA compute",
    "workloads": [
        "bs-download-cuda",
        "bs-readback-cuda",
        "gmem-rw-cuda",
        "maxhalf-cuda",
        "maxint-cuda",
        "maxsp-cuda",
        "maxdp-cuda",
        "fft-test-cuda",
        "gemm-test-cuda",
    ],
    "subsuites": None,
}

HWCODECSuite = {
    "type": SuiteType.CommonSuite,
    "name": "HWCODECSuite",
    "description": "hardware codec",
    "workloads": [
        "dec_vaapi_x11_264",
        "dec_vaapi_x11_265",
        "dec_vaapi_drm_264",
        "dec_vaapi_drm_265",
        "dec_vdpau_x11_264",
        "dec_vdpau_x11_265",
        "dec_vdpau_drm_264",
        "dec_vdpau_drm_265",
        "enc_vaapi_yuyv_264",
        "enc_vaapi_i420_264",
        "enc_vaapi_yuyv_265",
        "enc_vaapi_i420_265"
    ],
    "subsuites": None,
}

DefaultSuite = {
    "type": SuiteType.CommonSuite,
    "name": "DefaultSuite",
    "description": "Suite repository",
    "workloads": None,
    "subsuites": [
        OpenGLSuite,
        VulkanSuite,
        OpenCLSuite,
        CUDASuite,
        HWCODECSuite
    ],
    "baseline": DefaultSuiteBaseline
}


DEFAULT_SUITE = {
    'Common': DefaultSuite,
}

